Various data processing systems have been developed including storage systems, cellular telephone systems, and radio transmission systems. In each of the systems data is transferred from a sender to a receiver via some medium. For example, in a storage system, data is sent from a sender (i.e., a write function) to a receiver (i.e., a read function) via a storage medium. As information is stored and transmitted in the form of digital data, errors are introduced that, if not corrected, can corrupt the data and render the information unusable. The effectiveness of any transfer is impacted by any losses in data caused by various factors. Many types of data processors have been developed to detect and correct errors in digital data. For example, data detectors and decoders such as Maximum a Posteriori (MAP) detectors and Low Density Parity Check (LDPC) decoder may be used to detect and decode the values of data bits or multi-bit symbols retrieved from storage or transmission systems.
Sectors of data from storage systems or other blocks of data may vary in the signal to noise ratio (SNR) and thus the difficulty of recovering the original data after storage or transmission. As data is retrieved or received sequentially, memory buffers may be provided in a data processing system to store data being processed. However, data blocks such as those with poor SNR may take longer to process than others. Data blocks that require additional processing time may be kept in memory longer during processing, thereby keeping later data blocks backed up in memory even if their processing is complete, although this increases overall latency. Alternatively, data flow through the system may be maintained to prevent completed data blocks from being backed up in memory, although this may prevent cause some data blocks to be output and cleared from memory before they are fully processed, potentially leaving uncorrected errors.